Вариант 2, 2007 г.
1) Выписать фрагмент программы (не более 7 команд) для безадресной (стековой) учебной машины, реализующий присваивание А:=А*А+В*В (А <-> 0200, В <-> 0204, 00 - запись в сумматор, 10 - чтение из сумматора, 01 - сложение, 03 - умножение).

2) Что будет напечатано в результате выполнения команд:
mov ax, 342
mov BL, 2
div
cbw
outint

3) Вычеркнуть неверные команды ( X db ?, W dw ?):
mov ax, x-w
sub AX, DS
mov 5[BX][SI], 5000
xchg bx, [bx]
mov ax, 'X'
mov AX, [BL]

4) В программе под сегмент стека отведено 600 байтов. Выписать фрагмент программы на Асcемблере, который копирует находящиеся сейчас в стеке положительные числа-слова (word) в область памяти, начинающуюся с абсолютного адреса 5EFDCh. Считать, что эта область не пересекается ни со стеком, ни с этим фрагментом. Можно менять значения всех регистров, кроме SS и SP.

5) Указать значения BL (в виде знакового десятичного числа), флагов CF, OF и SF после выполнения команд:
mov BL, 160
sub BL, -56

6) Описать на Ассемблере близкую процедуру, заголовок которой на Паскале имеет вид
procedure AddNum( var X:integer; c:integer );
Процедура реализует присваивание x:=x+c. Параметры передаются через стек. Процедура должна выполнять стандартные соглашения о cвязях. Привести пример вызова этой процедуры для выполнения присваивания cnt:=cnt+one (cnt имеет тип word, one описано через директиву equ).

7) Привести макроопределение с заголовком JzeroL macro v, L (v - список переменных <v1,...,vk>, L - метка). Если значения всех переменных-байтов из списка положительны (как знаковые числа) или таких переменных в списке нет, надо перейти на метку L. Выписать макрорасширение для макрокоманды JzeroL <z,a,y,w>, Con (a  - байт, y, z - слова, w - двойное слово).

8) Программа на Ассемблере состоит из двух модулей. В кодовом сегменте головного модуля описана общедоступная (public) переменная y типа byte (со знаком). Выписать второй модуль, который должен содержать процедуру с именем PechAbsY, при вызове которой напечатается абсолютное значение y.

9) В программе на Ассемблере есть предложения: data segment и mov ax, data. Какая служебная программа подставляет конкретное значение на место операнда data в команде mov ax, data ?

10) Дать определения следующих понятий для УМ-3:
а) регистр
б) регистр адреса (счётчик адреса)
в) регистр команды